<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // const arrayProto = Array.prototype
        // const newArrayProto = Object.create(arrayProto)
        // const methodsToPatch = [
        // 'push',
        // 'pop',
        // 'shift',
        // 'unshift',
        // 'splice',
        // 'sort',
        // 'reverse'
        // ]
        // methodsToPatch.forEach(method => {
        //   const original = arrayProto[method]
        //   Object.defineProperty(newArrayProto, method, {
        //     enumerable: false,
        //     configurable: true,
        //     writable: true, 
        //     value: function matator(...arts) {
        //         console.log('get到了')
        //         const result = original.apply(this, arts) //this 指向数组
        //         return result
        //     }
        //   })
        // })
        // let arr = [1, 2, 3 , 4 , 5]
        // Object.setPrototypeOf(arr, newArrayProto)

        // 此处使用以上的改变数组的方法就会触发

    </script>
</body>
</html>